package com.tucy.logistics.common.entity.organization;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;
import java.util.List;


import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.tucy.logistics.common.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;

/**
* 物流营业部
* @TableName organization_business_department
*/
@Setter
@Getter
@TableName("organization_business_department")
public class OrganizationBusinessDepartment extends BaseEntity implements Serializable {

    /**
    * 组织系统编号
    */
    @NotNull(message="[组织系统编号]不能为空")
    @ApiModelProperty("组织系统编号")
    private Long id;
    /**
    * 从属系统编号
    */
    @NotNull(message="[从属系统编号]不能为空")
    @ApiModelProperty("从属系统编号")
    private Long parentId;
    /**
    * 名称
    */
    @NotBlank(message="[名称]不能为空")
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("名称")
    @Length(max= 40,message="编码长度不能超过40")
    private String name;
    /**
    * 类型：1-转运中心，2-分拣中心，3-营业部
    */
    @NotNull(message="[类型：1-转运中心，2-分拣中心，3-营业部]不能为空")
    @ApiModelProperty("类型：1-转运中心，2-分拣中心，3-营业部")
    private Integer type;
    /**
    * 省份
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("省份")
    @Length(max= 255,message="编码长度不能超过255")
    private String province;
    /**
    * 城市
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("城市")
    @Length(max= 255,message="编码长度不能超过255")
    private String city;
    /**
    * 区县
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("区县")
    @Length(max= 255,message="编码长度不能超过255")
    private String county;
    /**
    * 详细地址
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("详细地址")
    @Length(max= 255,message="编码长度不能超过255")
    private String address;
    /**
    * 纬度
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("纬度")
    @Length(max= 255,message="编码长度不能超过255")
    private String latitude;
    /**
    * 经度
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("经度")
    @Length(max= 255,message="编码长度不能超过255")
    private String longitude;
    /**
    * 负责人
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("负责人")
    @Length(max= 255,message="编码长度不能超过255")
    private String managerName;
    /**
    * 手机号码
    */
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("手机号码")
    @Length(max= 255,message="编码长度不能超过255")
    private String phone;

    @TableField(exist = false)
    @ApiModelProperty("从属机构")
    private List<OrganizationBusinessDepartment> children;

    @TableField(exist = false)
    @ApiModelProperty("作业范围")
    private List<OrganizationBusinessDepartmentRange> polygon;
}
